#include <stdio.h>

/**
 * 假设这里有n个台阶，每次你可以跨1个台阶或者2个台阶，请问走这n台阶有多少种走法？
 *  1. 如果有7个台阶，你可以2，2，2，1这样子上去，也可以1，2，1，1，2这样子上去
 *  2. 实际上，可以根据第一步的走法把所有走法分为两类，第一类是第一步走了1个台阶，另一类是第一步走了2个台阶
 *  3. 所以n个台阶的走法等于先走1阶后，n - 1 个台阶走法加上先后2阶后，n - 2个台阶的走法：用公式表示: f(n) = f(n - 1) + f(n - 2)
 */

int f (int n) {
    if (n == 1) return 1;
    if (n == 2) return 2;
    return f(n - 1) + f(n - 2);
}


int main() {

    int n = 7;

    printf("val: %d", f(n));
}